﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.Common;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface ICommonMethodService
    {
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail))]
        string AuditContractByContractID(List<string> contractID, string audit, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        string CreatedLocation(CreatedLocationinfo CreateLocation, LocationInfo Location, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        string DeleteCustGridviewInfos(string functionID, string gridviewID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(AppSettingInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        List<AppSettingInfo> GetAllAppSettingInfo();
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(VisualLocationInfo))]
        List<VisualLocationInfo> GetAllVisualLocationInfo(VisualLocationQueryEntity VisualLocQuery, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(AppRegInfo)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo))]
        AppRegInfo GetAppRegInfo(PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(LotTemplateInfo))]
        LotTemplateInfo GetAttributeInfoBySkuID(string SkuID, string OwnerID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetAuthorizationUserByType(string Type, string entityID, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        List<OwnerInfo> GetAuthorizedOwnerByUserID(string userID, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        decimal GetAvailableQty(string ownerID, string skuID, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(CartonGroup4DDL)), OperationContract]
        List<CartonGroup4DDL> GetCartonGroup4Select(PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(CustGridviewInfo)), FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        List<CustGridviewInfo> GetCustGridviewInfos(string functionID, string gridviewID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(CycleCountRule4DDL)), FaultContract(typeof(FaultDetail))]
        List<CycleCountRule4DDL> GetCycleCountRule4Select(PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(FieldNameInfo)), OperationContract]
        List<FieldNameInfo> GetFieldNameByTableName(string TableName, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(InitGridviewQueryEntity)), ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetInitGridViewInfoByQueryEntity(InitGridviewQueryEntity initGridviewQuery, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(InitGridviewInfo)), FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        List<InitGridviewInfo> GetInitGridviewInfos(string functionID, string gridviewID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetInvSkuQtyByOwnerID(string ownerID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(LotAttributeCodeInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        List<LotAttributeCodeInfo> GetLotAttributCodeByGroupID(string groupID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        List<string> GetLotAttributeCode4LotTemplate(PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(LotTemplate4DDL))]
        List<LotTemplate4DDL> GetLotTemplate4Select(PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PreferenceValueInfo))]
        List<PreferenceValueInfo> GetPreferenceValueByID(string preferenceID);
        [FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(ReceiptValidation4DDL))]
        List<ReceiptValidation4DDL> GetReceiptValidation4Select(PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        DataSet GetRelatedOrders(string Type, string skuID, string ownerID, string lot, string loc, string lpn, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(Rule4DDL)), OperationContract, FaultContract(typeof(FaultDetail))]
        List<Rule4DDL> GetRules4Select(string ruleID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet GetShowGridviewInfo(string functionID, string gridviewID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(SkuInfo)), OperationContract]
        SkuInfo GetSkuByBarcode(string Barcode, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        SkuInfo GetSkuInfoByUserOwner(string skuID, string userID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(SkuInfo)), OperationContract]
        List<SkuInfo> GetSkuInfosByOwnerIDAndBarCode(string ownerID, string barCode, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(SysCode4DDL)), ServiceKnownType(typeof(PubParasInfo))]
        List<SysCode4DDL> GetSysCode4DDL(PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(SysCode4DDL)), FaultContract(typeof(FaultDetail))]
        List<SysCode4DDL> GetSysCodeForDropDownList(string sysCodeType, string language, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(UomList))]
        List<UomList> GetUomListByPackID(string packID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(Owner4DDL)), FaultContract(typeof(FaultDetail)), OperationContract]
        List<Owner4DDL> GetUserPermissionOwner(string userID);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(WareHouseName4DDL))]
        List<WareHouseName4DDL> GetUserPermissionWareHouse(string userID);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(WareHouseName4DDL)), OperationContract]
        List<WareHouseName4DDL> GetWareHouse4Select();
        [OperationContract, FaultContract(typeof(FaultDetail)), FaultContract(typeof(string[][]))]
        string ImportByData(string[][] ImportByData, string dataName, string IsUpdate, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail))]
        string ImportByDataSet(DataSet ds, string dataName, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(CustGridviewInfo)), ServiceKnownType(typeof(PubParasInfo))]
        string InsertCustGridviewInfos(List<CustGridviewInfo> custGridviewInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(LPNGenParams))]
        string LpnGenerateByGenerateType(LPNGenParams lpnGenParams, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail))]
        DataSet SearchDataByKey(string key, string key2, string Type, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string SqlAnalyse(string strSql, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(BaseQuery))]
        DataSet SqlQuery(string sql, BaseQuery baseQuery);
        [ServiceKnownType(typeof(AuditDefinitionInfo)), ServiceKnownType(typeof(PubParasInfo)), FaultContract(typeof(FaultDetail)), OperationContract]
        string UpdateAuditDefinitionInfoByList(List<AuditDefinitionInfo> objs, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        int UpdateAuthorizationUserByType(string authorizationUser, string Type, string entityID, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(PubParasInfo))]
        string UpdateRegID(string regIDValue, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract, ServiceKnownType(typeof(UDFInfo)), ServiceKnownType(typeof(PubParasInfo))]
        string UpdateUDF(string ID, UDFInfo udfInfo, string strType, PubParasInfo pubParasInfo);
    }
}

